#pragma once

#include "VertexContainer.h"
#include "Pointer.h"
#include "Material.h"
#include "Uniform.h"

class Mesh
{
public:
	typedef std::vector<Pointer<Mesh>> Vector_t;

	Mesh();
	Mesh( Pointer<IVertexContainer>& vertexContainer );
	
	Pointer<IVertexContainer>& getVertexContainer();
	Material& getMaterial();
	IUniformInstruction::Map_t& getUniformInstructions();
protected:
	Pointer<IVertexContainer> m_vertexContainer;
	Material m_material;
	IUniformInstruction::Map_t m_uniformInstructions;
};